# from box import Box
import os
from configparser import ConfigParser
readme = """version=1.3
使用步骤：
1. 登录源账号，esc -> 游戏设置 -> 综合 - 拉到最下方服务器同步设置，取消所有同步的勾选，点击应用
2. 登录目标账号角色，进入一次游戏后，返回角色界面
3. 右键 main.exe 以管理员身份运行（或者设置属性“以管理员运行此程序”）
4. 左上角file -> open，选择游戏所在目录（例如：D:\\SeasunGame\\Game\\JX3\\bin\\zhcn_hd）
5. 点击工具上方【检索游戏角色】
6. 在下方左侧选择源账号角色
7. 在下右侧选择目标账号角色
8. 点击中间【覆盖同步】按钮
9. 完成同步

功能说明：
    可以进行角色名模糊搜索角色

ps：
    有bug，说下，3qq
    
"""
ini = """[DEFAULT]
GamePath =
"""


class ConfTool(ConfigParser):

    def __init__(self, file, encoding="utf-8"):
        # 执行父类的构造函数
        super().__init__()
        self.config_path = file
        self.initfile(file)
        self.read(filenames=file, encoding=encoding)

    def initfile(self, file):
        if not os.path.exists(file):
            with open(file, "w+", encoding="utf-8") as f:
                f.write(ini)
        if not os.path.exists('./readme.txt'):
            with open('./readme.txt', "w+", encoding="utf-8") as f:
                f.write(readme)
    # 获取不到section或者option，直接返回给定的默认值

    def get_or_default(self, section, option, default=None):
        if not self.has_section(section):
            return default
        elif not self.has_option(section, option):
            return default
        return self.get(section=section, option=option)

    def update_config(self, section, option, value):
        self.set(section, option, value)
        self.write(open(self.config_path, "r+", encoding="utf-8"))
        print('update config:' + section + ',' + option + ',' + value)


# if __name__ == '__main__':
#     conf = ConfTool(file="config.ini")
#     # 配置文件中如没有配置mysql登录名user字段，则默认取root
#     # print(conf.get_or_default("file", "gamepath"))
#     print(conf.to_dict())
#     # 可以通过属性调用的形式，获取配置
#     # print(conf.file)
#     # print(conf.get('file', 'gamepath'))
#     conf["file"]["gamepath"] = "333"
#     # conf.set(section="file", "gamepath", '123')
#     fo = open("config.ini", 'w', encoding='UTF-8')  # 重新创建配置文件
#     conf.write(fo)
#     fo.close()
